// pages/participant/index.js
import { getParticipantInfo } from '../../api/information.js'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    showToastState:true,//是否已加载全部
    users:[],
    pageNum:1,
    pageSize:10,
    isRequst:false,//用来判断当前是否为请求状态
    all: false,
    scrollTop: 0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.feach()
  },
  feach() {
    this.setData({ pageNum: 1, isRequst: false,showToastState:true })
    this._getParticipantInfo()
  },
  //获取列表
  _getParticipantInfo(){
    if (!this.data.isRequst) {
      this.setData({ isRequst:true})
      let { pageNum, pageSize, users } = this.data
      getParticipantInfo({pageNum: pageNum, pageSize: pageSize }).then(res => {
        if (res.rows.length > 0) {
          this.setData({ users: [...(pageNum == 1 ? [] : users), ...res.rows], pageNum: pageNum+1 })
          if(this.data.users.length==res.total){
            this.setData({showToastState:false})
          }else{
            this.setData({showToastState:true})
          }
        } else if (res.total <= users.length && users.length>0){
          this.setData({showToastState:false})
        }else{
          wx.showModal({
            title: '提示',
            content: '暂无参赛人员，是否立即添加？',
            showCancel: true,//是否显示取消按钮
            cancelText: "否",//默认是“取消”
            cancelColor: '#999999',//取消文字的颜色
            confirmText: "是",//默认是“确定”
            confirmColor: '#000000',//确定文字的颜色
            success:res=>{
              if (!res.cancel) {
                this.add()
              }
            },
            fail: function (res) { },//接口调用失败的回调函数
            complete: function (res) { },//接口调用结束的回调函数（调用成功、失败都会执行）
          })
        }
        this.setData({ isRequst: false })
      })
    }
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.feach()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this._getParticipantInfo();
  },


  //监听用户滑动页面事件
  onPageScroll: function (ev) {
    var _this = this;
    //当滚动的top值最大或最小时，为什么要做这一步是因为在手机实测小程序的时候会发生滚动条回弹，所以为了处理回弹，设置默认最大最小值
    if (ev.scrollTop <= 0) {
      ev.scrollTop = 0;
    } else if (ev.scrollTop > wx.getSystemInfoSync().windowHeight) {
      ev.scrollTop = wx.getSystemInfoSync().windowHeight;
    }
    //判断浏览器滚动条上下滚动
    if (ev.scrollTop > this.data.scrollTop || ev.scrollTop == wx.getSystemInfoSync().windowHeight) {
      //向下滚动
      if (this.data.all != true) {
        this.setData({ all: true })
      }
    } else {
      //向上滚动
      if (this.data.all != false) {
        this.setData({ all: false })
      }
    }
    //给scrollTop重新赋值
    setTimeout(function () {
      _this.setData({
        scrollTop: ev.scrollTop
      })
    }, 0)
  },
  //跳转到添加参赛人员的页面
  add(){
    wx.navigateTo({
      url: '/pages/entry_add/index?text=添加参赛人员',
    })
  },
  //修改
  update(e) {
    let d = e.currentTarget.dataset;
    wx.navigateTo({
      url: `/pages/input_information/index?pid=${d.pid}&uid=${d.uid}`,
    })
  }
})